package top.ed333.mcplugins.configurableevents.handler;

import org.bukkit.event.Event;
import org.bukkit.event.EventPriority;
import org.bukkit.plugin.EventExecutor;
import top.ed333.mcplugins.configurableevents.action.Actions;
import top.ed333.mcplugins.configurableevents.requirement.ReqGroup;
import top.ed333.mcplugins.configurableevents.requirement.ReqGroups;

public interface Handler {
    /** 该处理器的名字 */
    String name();

    /** 该处理器所应用的事件的包位置 */
    String usePackage();

    /** 事件名 */
    String eventName();

    /** 完整的事件类名 */
    String className();

    /** Bukkit 中所设置的事件优先级 */
    EventPriority priorityBukkit();

    /** 处理事件的条件 */
    ReqGroups requirement();

    /** 事件触发后所执行的内容 */
    Actions actions();

    Class<? extends Event> getEventClass();

    EventExecutor getAsEventExecutor();
}
